/**
 * 
 */
package de.mbenning.fsim.persistence.dao;

import java.util.List;

import org.hibernate.ObjectNotFoundException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import de.mbenning.fsim.domain.Land;
import de.mbenning.fsim.domain.Verein;
import de.mbenning.fsim.persistence.dao.interfaces.IVereinDAO;

/**
 * @author Martin.Benning
 *
 */
public class VereinDAO extends HibernateDaoSupport implements IVereinDAO {

	@SuppressWarnings("unchecked")
	public List<Verein> findAllVereine() {
		return getHibernateTemplate().find(" FROM Verein A ");
	}

	@SuppressWarnings("unchecked")
	public List<Verein> findAllVereineByLand(Land land) {
		return getHibernateTemplate().find(" FROM Verein A WHERE A.adresse.land.id = ?", land.getId());
	}

	public Verein getVereinById(Integer id) {
		for (final Object object : getHibernateTemplate().find(" FROM Verein A WHERE A.id = ?", id)) {
            return (Verein) object;
        }
        throw new ObjectNotFoundException("Verein", Verein.class.getName());
	}

	public Verein getVereinByName(String name) {
		for (final Object object : getHibernateTemplate().find(" FROM Verein A WHERE A.name = ?", name)) {
            return (Verein) object;
        }
        throw new ObjectNotFoundException("Verein", Verein.class.getName());
	}

}
